import { LoginApi, getUserInfoApi, getUserPhoto } from '@/api/user'

import { setToken, getToken, delToken } from '@/utils/auth'
const state = {
  token: getToken(),
  UserObj: {}
}

const mutations = {
  // 存token
  setToken(state, token) {
    state.token = token
    setToken(token)
  },
  // 清除token
  delToken(state) {
    // 1.清除vuex中的token
    state.token = ''
    // 2.清除本地的token
    delToken()
    // 3.清除用户信息
    state.UserObj = ''
  },
  // 保存用户信息
  setUserDta(state, val) {
    state.UserObj = val
  }
}

const actions = {
  // 登录功能
  async getLogin(store, obj) {
    // 1.请求端口
    const res = await LoginApi(obj)
    // 2.储存token
    store.commit('setToken', res.data)
  },
  // 首页获取用户信息功能
  async getUserData(store) {
    // 获取基本用户信息
    const { data } = await getUserInfoApi()
    // 获取全部用户信息
    const { data: data2 } = await getUserPhoto(data.userId)
    const obj = { ...data, ...data2 }
    // console.log(obj)
    store.commit('setUserDta', obj)
    return obj
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

